package com.aterrizar.criterio;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Date;

import com.aterrizar.asiento.Asiento;

public class TiempoDeVuelo implements Comparator<Asiento> {

	@Override
	public int compare(Asiento asiento1, Asiento asiento2) {
		return tiempoDeVuelo(asiento1).compareTo(tiempoDeVuelo(asiento2)) ;
	}
	SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/aaaa");
	SimpleDateFormat formatoHora = new SimpleDateFormat("hh:mm");
	SimpleDateFormat formatoFechaYHora = new SimpleDateFormat("dd/MM/aaaa"+"hh:mm");
	
	private Long tiempoDeVuelo(Asiento asiento) {
		
		String stringHoraLlegada = asiento.getHoraLlegada();
		String stringHoraSalida = asiento.getHoraSalida();
		String stringFechaLlegada = asiento.getFechaLlegada();
		String stringFechaSalida = asiento.getFechaSalida();
		
		Date dateSalida = parseDatos(stringFechaSalida, stringHoraSalida);
		Date dateLlegada = parseDatos(stringFechaLlegada,stringHoraLlegada);
		
		Long diferencia = (dateLlegada.getTime() - dateSalida.getTime());
		
//		
//		Date horaLlegada = parsearHora(stringHoraLlegada);
//		Date horaSalida = parsearHora(stringHoraSalida);
//		Date fechaSalida = parsearFecha(stringFechaSalida);
//		Date fechaLlegada = parsearFecha(stringFechaLlegada);
//		
//		
//		
//		return null;
		return diferencia;
	}

	private Date parseDatos(String stringFechaLlegada, String stringHoraLlegada) {
		Date date = null;
		try {
			date = formatoFechaYHora.parse(stringFechaLlegada + stringHoraLlegada);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return date;
	}

//	private Date parsearHora(String stringHora) throws ParseException {
//		Date date = formatoHora.parse(stringHora);
//		return date;
//	}
//	
//	private Date parsearFecha(String stringFecha) throws ParseException{
//		Date date = formatoHora.parse(stringFecha);
//		return date;
//	}
//
	}